package ie.dcu.spca.data;

/**
 * There are many data managers in the system. Add this interface for creating
 * the data manager from different type
 * 
 * @author wpc
 * 
 */
public interface DataManager {

    /**
     * @return User Data Manager
     */
    UserDataManager userDataManager();

    String getDatabaseUri();

    void open();

    /**
     * @return Category Data Manager
     */
    CategoryDataManager categoryDataManager();

    /**
     * @return Product Data Manager
     */
    ProductDataManager productDataManager();

    /**
     * @return Price Unit Data Manager
     */
    PriceUnitDataManager priceUnitDataManager();

    /**
     * @return Bill Data Manager
     */
    BillDataManager billDataManager();

    /**
     * @return Item Data Manager
     */
    ItemDataManager itemDataManager();

    /**
     * @return Items -- Users Data Manager
     */
    ItemUserDataManager itemUserDataManager();

    /**
     * Close Data Manager
     */
    void close();

    void sendDB();
}
